#ifndef APPLICATIONIMP_HPP
#define APPLICATIONIMP_HPP

// This guard ensures that windows implementation is used only
// on windows platform.
#ifndef MY_USE_WIN32

    #error Windows version of __FILE__ is used without MY_USE_WIN32 defined.

#endif

#include <stdint.h>
#include <windows.h>

#include "Global/MyEngine.hpp"
#include "Pattern/Uncopyable.hpp"

namespace My
{
    class MY_SHARED ApplicationImp : private Uncopyable
    {
    public:
        int32_t Run();

    protected:
        ApplicationImp();
        ~ApplicationImp();

    private:
        HINSTANCE m_Instance;
    };

}

#endif // APPLICATIONIMP_HPP
